package com.aaa.mapper.back;

import com.aaa.entity.Sales;
import com.aaa.entity.SalesOut;
import com.aaa.entity.SalesOutDetails;
import com.aaa.entity.WarehouseDetails;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

@Mapper
public interface SalesMapper {

    /**
     * 查询客户订单（待支付）
     * @return
     */
    List<Map<String,Object>> findSales1();

    /**
     * 查询客户订单（待发货）
     * @return
     */
    List<Map<String,Object>> findSales2();

    /**
     * 查询客户订单（已发货/待收货）
     * @return
     */
    List<Map<String,Object>> findSales3();

    /**
     * 根据客户订单编号查询客户订单明细
     * @return
     */
    List<Map<String,Object>> findSalesDetails(String salesId);

    /**
     * 根据客户出库单编号查询客户出库单明细
     * @return
     */
    List<Map<String,Object>> findSalesOutDetails(String salesOutId);

    /**
     * 根据客户出库单编号查询客户出库单明细
     * @return
     */
    List<SalesOutDetails> findBySalesOutDetails(String salesOutId);

    /**
     * 查询客户出库单（未出库）
     * @return
     */
    List<Map<String,Object>> findSalesOut0();

    /**
     * 查询客户出库单（已出库）
     * @return
     */
    List<Map<String,Object>> findSalesOut1();

    /**
     * 根据出库单编号查询出库单
     * @param salesOutId
     * @return
     */
    SalesOut findBySalesOutId(String salesOutId);

    /**
     * 更改客户订单（待发货）为（待出库）
     * 状态3：待出库/待收货
     * @param sales
     * @return
     */
    int editSales3(Sales sales);

    /**
     * 更改客户订单（待收货）为（确认收货）
     * 状态4：已出库/确认收货
     * @param sales
     * @return
     */
    int editSales4(Sales sales);

    /**
     * 更改客户出库单（待出货）为（已出库）
     * @param salesOut
     * @return
     */
    int editSalesOut(SalesOut salesOut);

    /**
     * 生成客户订单出库单
     * @param salesOut
     * @return
     */
    int addSalesOut(SalesOut salesOut);

    /**
     * 生成客户订单出库明细单
     * @param salesOutDetails
     * @return
     */
    int addSalesOutDetails(SalesOutDetails salesOutDetails);

    /**
     *更新库存数量
     * @param map
     * @return
     */
    int editWarehouseDetails(Map<String, Object> map);


}
